package com.sinosoft.ebusiness.domain.elementManage;
// 采用工具 Hibernate Tools 3.2.4.GA (sinosoft version) 生成，请勿手工修改。

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.sinosoft.ebusiness.domain.elementManage.GeProductStepTemplate;
import com.sinosoft.ebusiness.domain.elementManage.GeTemplateGroup;

/**
 * POJO类GeTemplate
 */
@Entity
@Table(name = "GE_TEMPLATE")
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"})
public class GeTemplate implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 3351690030413594500L;

	/** 属性templatecode */
	private String templatecode;

	/** 属性templatecname */
	private String templatecname;

	/** 属性templateename */
	private String templateename;

	/** 属性templatetname */
	private String templatetname;

	/** 属性风险类别 */
	private String riskClass;

	/** 属性审核状态 */
	private String status;

	/** 属性备注 */
	private String remark;

	/** 属性createcode */
	private String createcode;

	/** 属性createdate */
	private Date createdate;

	/** 属性最后修改人 */
	private String updateCode;

	/** 属性更新日期 */
	private Date updateDate;

	/** 属性geProductStepTemplates */
	private List<GeProductStepTemplate> geProductStepTemplates = new ArrayList<GeProductStepTemplate>(
			0);

	/** 属性geTemplateGroups */
	private List<GeTemplateGroup> geTemplateGroups = new ArrayList<GeTemplateGroup>(
			0);

	/**
	 * 类GeTemplate的默认构造方法
	 */
	public GeTemplate() {
	}

	/**
	 * 属性templatecode的getter方法
	 */
	@Id
	@Column(name = "TEMPLATECODE")
	public String getTemplatecode() {
		return this.templatecode;
	}

	/**
	 * 属性templatecode的setter方法
	 */
	public void setTemplatecode(String templatecode) {
		this.templatecode = templatecode;
	}

	/**
	 * 属性templatecname的getter方法
	 */

	@Column(name = "TEMPLATECNAME")
	public String getTemplatecname() {
		return this.templatecname;
	}

	/**
	 * 属性templatecname的setter方法
	 */
	public void setTemplatecname(String templatecname) {
		this.templatecname = templatecname;
	}

	/**
	 * 属性templateename的getter方法
	 */

	@Column(name = "TEMPLATEENAME")
	public String getTemplateename() {
		return this.templateename;
	}

	/**
	 * 属性templateename的setter方法
	 */
	public void setTemplateename(String templateename) {
		this.templateename = templateename;
	}

	/**
	 * 属性templatetname的getter方法
	 */

	@Column(name = "TEMPLATETNAME")
	public String getTemplatetname() {
		return this.templatetname;
	}

	/**
	 * 属性templatetname的setter方法
	 */
	public void setTemplatetname(String templatetname) {
		this.templatetname = templatetname;
	}

	/**
	 * 属性风险类别的getter方法
	 */

	@Column(name = "RISKCLASS")
	public String getRiskClass() {
		return this.riskClass;
	}

	/**
	 * 属性风险类别的setter方法
	 */
	public void setRiskClass(String riskClass) {
		this.riskClass = riskClass;
	}

	/**
	 * 属性审核状态的getter方法
	 */

	@Column(name = "STATUS")
	public String getStatus() {
		return this.status;
	}

	/**
	 * 属性审核状态的setter方法
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 属性备注的getter方法
	 */

	@Column(name = "REMARK")
	public String getRemark() {
		return this.remark;
	}

	/**
	 * 属性备注的setter方法
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * 属性createcode的getter方法
	 */

	@Column(name = "CREATECODE")
	public String getCreatecode() {
		return this.createcode;
	}

	/**
	 * 属性createcode的setter方法
	 */
	public void setCreatecode(String createcode) {
		this.createcode = createcode;
	}

	/**
	 * 属性createdate的getter方法
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "CREATEDATE")
	public Date getCreatedate() {
		return this.createdate;
	}

	/**
	 * 属性createdate的setter方法
	 */
	public void setCreatedate(Date createdate) {
		this.createdate = createdate;
	}

	/**
	 * 属性最后修改人的getter方法
	 */

	@Column(name = "UPDATECODE")
	public String getUpdateCode() {
		return this.updateCode;
	}

	/**
	 * 属性最后修改人的setter方法
	 */
	public void setUpdateCode(String updateCode) {
		this.updateCode = updateCode;
	}

	/**
	 * 属性更新日期的getter方法
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "UPDATEDATE")
	public Date getUpdateDate() {
		return this.updateDate;
	}

	/**
	 * 属性更新日期的setter方法
	 */
	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	/**
	 * 属性geProductStepTemplates的getter方法
	 */
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "geTemplate")
	@JsonManagedReference
	public List<GeProductStepTemplate> getGeProductStepTemplates() {
		return this.geProductStepTemplates;
	}

	/**
	 * 属性geProductStepTemplates的setter方法
	 */
	public void setGeProductStepTemplates(
			List<GeProductStepTemplate> geProductStepTemplates) {
		this.geProductStepTemplates = geProductStepTemplates;
	}

	/**
	 * 属性geTemplateGroups的getter方法
	 */
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "geTemplate")
	@JsonManagedReference
	public List<GeTemplateGroup> getGeTemplateGroups() {
		return this.geTemplateGroups;
	}

	/**
	 * 属性geTemplateGroups的setter方法
	 */
	public void setGeTemplateGroups(List<GeTemplateGroup> geTemplateGroups) {
		this.geTemplateGroups = geTemplateGroups;
	}

}
